<h1>PlaceObject</h1>

<p>PlaceObject is used to add an object (shape, button, etc.) to the Flash 
Player's display list.</p>

<table>

<tr>
<th nowrap>Field Name</th>
<th>Type</th>
<th>Size</th>
<th>Description</th>
</tr>

<tr>
<td nowrap valign="top">type</td>
<td nowrap valign="top">unsigned bit</td>
<td nowrap valign="top" align="right">10</td>
<td>Identifies the PlaceObject instruction when it is encoded. It is encoded 
with the length field as a 16-bit integer (Little-endian byte order).</td>
</tr>

<tr>
<td nowrap valign="top">length</td>
<td nowrap valign="top">unsigned bit</td>
<td nowrap valign="top" align="right">6</td>
<td>The length in bytes of the body of the instruction when it is encoded. If the length is greater 
than 62 then this field is set to 0x3F and the length is encoded using the 
extendedLength field. Encoded with the type field as a 16-bit integer.</td>
</tr>

<tr>
<td nowrap valign="top">extendedLength</td>
<td nowrap valign="top">unsigned int</td>
<td nowrap valign="top" align="right">32</td>
<td>Optional. Contains the length in bytes of the encoded instruction if it is
greater than 62 bytes. If the length is 62 bytes or less then this field is 
omitted.</td>
</tr>

<tr>
<td nowrap valign="top">identifier</td>
<td nowrap valign="top">unsigned int</td>
<td nowrap valign="top" align="right">16</td>
<td>The identifier of the object to added to the display list.</td>
</tr>

<tr>
<td nowrap valign="top">layer</td>
<td nowrap valign="top">unsigned int</td>
<td nowrap valign="top" align="right">16</td>
<td>Defines the order in which objects are displayed.</td>
</tr>

<tr>
<td nowrap valign="top">transform</td>
<td nowrap valign="top">CoordTransform</td>
<td nowrap valign="top" align="right">&nbsp;</td>
<td>Optional. A coordinate transform defines the position, scale and rotation of 
the object. It may be omitted, when updating an object, if its position on the 
screen does not change. It is required when placing an object on the display
list for the first time.</td>
</tr>

<tr>
<td nowrap valign="top">colorTransform</td>
<td nowrap valign="top">ColorTransform</td>
<td nowrap valign="top" align="right">&nbsp;</td>
<td>Optional. A colour transform defines any colour changes such as transparency 
effects. It may be omitted if the colour of an object (contained in the 
definition) is not changed.</td>
</tr>

</table>

<p>Every class that defines a shape, button etc. is assigned a unique identifier. 
This is an integer in the range 1..65535 and is used to refer to objects when 
performing actions such as adding or removing them from the display list.</p>

<p>The display list contains all the objects that are currently visible on the 
Flash Player's screen. The display list is ordered in layers, with one (and 
only one) object displayed on each layer. The Layer defines the order in which 
objects are displayed. Objects with a higher layer number are displayed in front 
of objects on a lower layer.</p>

<p>The coordinate transform is principally used to specify the location of the 
object when it is drawn on the screen however more complex coordinate transforms 
can also be specified such as rotating or scaling the object without changing 
the original definition.</p>

<p>Similarly the color transform allows the color of the object to be changed 
when it is displayed without changing the original definition. The PlaceObject 
instruction only supports opaque colours so although the ColorTransform supports 
transparent colours this information is ignored by the Flash Player. The colour 
transform is optional and may be set to the null object.</p>

<h2>History</h2>

<p>The PlaceObject instruction represents the PlaceObject tag from the Macromedia 
Flash (SWF) File Format Specification. It was introduced in Flash 1 and is 
superceded by PlaceObject2 which was added in Flash 3.</p>
